Single flux quantum inverter circuit

ABSTRACT

A circuit can include a first sub-circuit, a second sub-circuit, and a third sub-circuit. The first sub-circuit can store a reset state or a set state, and can include a first Josephson junction (JJ), a second JJ, and a third JJ coupled in parallel using superconducting inductors. The first JJ, the second JJ, and the third JJ can be biased using a JJ-based current source. The second sub-circuit can switch the first sub-circuit to the set state in response to receiving a pulse. The third sub-circuit can switch the first sub-circuit to the reset state in response to receiving one or more pulses.

GOVERNMENT LICENSE RIGHTS

This invention was made with United States (U.S.) government supportunder Contract No. W911NF-17-9-0001 awarded by the U.S. IntelligenceAdvanced Research Projects Activity (IARPA). The U.S. government hascertain rights in the invention.

RELATED APPLICATION

This application is related to U.S. patent application Ser. No.16/926,388, entitled “Single flux quantum buffer circuit”, filed on Jul.10, 2020, and U.S. patent application Ser. No. 16/926,379, entitled“Single flux quantum circuit that includes a sequencing circuit”, filedon Jul. 10, 2020. The contents of the above-mentioned applications areherein incorporated by reference in their entirety for all purposes.

TECHNICAL FIELD

The present disclosure relates to circuit designs and circuit designmethodologies for single flux quantum (SFQ) circuits that use aJosephson junction (JJ) based current source. More specifically, thepresent disclosure relates to an SFQ inverter circuit.

BACKGROUND

Over the past several decades, an almost unlimited appetite forcomputing and storage has fueled a rapid increase in the size andcomplexity of integrated circuit (IC) designs. SFQ technology, whichrelies on the quantum mechanical quantization of magnetic flux, is atechnology that can help meet future computing and storage demands.

SFQ technology uses JJs. A JJ can include two superconducting electrodesseparated, for example, by a thin insulating tunnel barrier, which cansupport a current that can flow indefinitely without any voltageapplied. Though SFQ technology itself has numerous variations, all makeuse of flux storage and transmission, which is affected by pulsesemitted by JJs.

SUMMARY

Some embodiments described herein feature a circuit or circuit designthat includes a first, second, and third sub-circuit. The firstsub-circuit can store a reset state or a set state, the secondsub-circuit can switch the first sub-circuit to the set state inresponse to receiving a pulse, and the third sub-circuit can switch thefirst sub-circuit to the reset state in response to receiving one ormore pulses.

The first sub-circuit can include a first, second, and third JJ coupledin parallel using superconducting inductors. The first, second, andthird JJ can be biased using one or more JJ-based current sources. A JJcan be biased using a current that is less than a critical current ofthe JJ and greater than the critical current of the JJ minus an inputpulse amplitude that is desired to trigger the JJ. A JJ-based currentsource can include a bias voltage source, a superconducting inductor,and a JJ coupled in series. The reset state can correspond to an absenceof a persistent current circulating in a superconducting loop comprisingthe first JJ and the second JJ, and the set state can correspond to apresence of the persistent current circulating in the superconductingloop comprising the first JJ and the second JJ.

A set terminal can be coupled to the second sub-circuit, an inputterminal can be coupled to the third sub-circuit, a clock terminal canbe coupled to the first JJ, and an output terminal can be coupled to thethird JJ via a termination resistance. The first sub-circuit cantransition to the set state when a clock pulse is received at the setterminal, and can transition to the reset state when an input pulse isreceived at the input terminal. The first sub-circuit can transition tothe reset state when a clock pulse is received at the clock terminal.The circuit can output an output pulse at the output terminal when aclock pulse is received at the clock terminal and the circuit is in theset state. The input terminal, the clock terminal, and the outputterminal can be electrically connected to respective passivetransmission lines.

In some embodiments, the input terminal can be electrically connected toa multi-input wired-OR structure that combines pulses received frommultiple circuits. Some embodiments feature an SFQ cell that can includea set terminal, an input terminal, a clock terminal, an output terminal,a plurality of superconducting inductors, a plurality of JJs, and atleast one JJ-based current source. The output terminal can be coupled toa terminal of a JJ in the plurality of JJs through a terminationresistance and a superconducting inductor.

BRIEF DESCRIPTION OF THE FIGURES

The disclosure can be understood based on the detailed description givenbelow and the accompanying figures. The figures are for illustrativepurposes, and do not limit the scope of the disclosure. Furthermore, thefigures are not necessarily drawn to scale.

FIG. 1A illustrates a Josephson current source (JCS)-based SFQ buffercircuit in accordance with some embodiments described herein.

FIG. 1B illustrates a JCS in accordance with some embodiments describedherein.

FIG. 1C illustrates a portion of a circuit design that includes aJCS-based SFQ buffer circuit in accordance with some embodimentsdescribed herein.

FIG. 2A illustrates a JCS-based SFQ multi-input synchronous OR gate inaccordance with some embodiments described herein.

FIG. 2B illustrates a set of waveforms corresponding to a JCS-based SFQmulti-input synchronous OR gate in accordance with some embodimentsdescribed herein.

FIG. 3A illustrates a JCS-based SFQ inverter circuit in accordance withsome embodiments described herein.

FIG. 3B illustrates a portion of a circuit design that includes aJCS-based SFQ inverter circuit in accordance with some embodimentsdescribed herein.

FIG. 4A illustrates a JCS-based SFQ multi-input synchronous NOR gate inaccordance with some embodiments described herein.

FIG. 4B illustrates a set of waveforms corresponding to a JCS-based SFQmulti-input synchronous NOR gate in accordance with some embodimentsdescribed herein.

FIG. 5A illustrates a circuit design methodology for JCS-based SFQcircuits in accordance with some embodiments described herein.

FIG. 5B illustrates a portion of a circuit design that may be created byusing the process illustrated in FIG. 5A in accordance with someembodiments described herein.

FIG. 6 illustrates three cell timing parameters in accordance with someembodiments described herein.

FIG. 7A illustrates an SFQ-based circuit design including a sequencingcircuit to provide delayed clock pulses to cells in accordance with someembodiments described herein.

FIG. 7B illustrates an SFQ-based circuit design including a sequencingcircuit to provide delayed clock pulses to cells in accordance with someembodiments described herein.

FIG. 7C illustrates a sequencing circuit to provide delayed clock pulsesto cells in accordance with some embodiments described herein.

FIG. 8 illustrates how a timed inverter can be used in circuit designsin accordance with some embodiments described herein.

FIG. 9 illustrates a process for synthesizing a clock network for aSFQ-based circuit design in accordance with some embodiments describedherein.

FIG. 10 depicts a flowchart that illustrates an IC design andmanufacture flow in accordance with some embodiments described herein.

FIG. 11 illustrates an example machine of a computer system within whicha set of instructions, for causing the machine to perform any one ormore of the methodologies discussed herein, may be executed inaccordance with some embodiments described herein.

DETAILED DESCRIPTION

When a JJ emits a voltage pulse, it can induce a single quantum ofmagnetic flux into a superconducting inductor that is electricallyconnected to the JJ. Some SFQ devices can achieve pulse widths close toa picosecond. In SFQ technology, logic states can be transmitted betweenlogic gates by propagating SFQ pulses, which can be generated by JJs. Insome approaches, SFQ pulses can be transmitted between logic gates byusing a Josephson transmission line (JTL), which includes a series ofsuperconducting inductors with a JJ connected to ground at theintersections. The inductors can have small inductance values, enablinga long Josephson transmission line with many junctions. Each JJ isbiased and therefore consumes current and dissipates power, and each JJrepresents a delay in signal propagation. JTLs maintain the essentialcharacteristics of an SFQ pulse with high reliability.

In a very-large-scale integration (VLSI) environment, using JTLs forinterconnecting logic gates can cause large delay and delay variation,and the existing automated routing design tools may need to be changedsubstantially to route JTLs. One alternative to using a JTL is to use apassive transmission line (PTL). A PTL is a stripline structure that hasan extremely low power loss due to being superconductive. However, a PTLuses a driver circuit to drive the PTL with a non-SFQ voltage pulse, anda receiver circuit to convert the received pulse back into an SFQ pulse.

One benefit of using PTL interconnections is that designers can useexisting routing tools in electronic design automation (EDA) systems todesign PTL-based SFQ circuits (as opposed to having to create a wholenew family of EDA tools that can handle JTL-based SFQ circuits).However, in such approaches, there are many design trade-offs andtechnical challenges when PTLs are used with SFQ devices.

As mentioned previously, in certain approaches, a driver circuit and areceiver circuit are used at the transmitting and receiving ends,respectively, of the PTL. A PTL driver circuit includes a JJ that emitsSFQ pulses into the transmission line. This can cause multiple problems.

One problem arises from the trade-off between wiring density andtransmission line width. To enable the high wiring densities, a designerwould like to use narrow transmission lines. However, the narrower theline, the higher the characteristic impedance. The amplitude of the SFQpulse is limited, so that a higher impedance implies that less pulseenergy is injected into the line, thus requiring a higher-sensitivityreceiver and/or reducing noise immunity. By way of a non-limitingexample that is based on existing technology, an impedance range of afew ohms to perhaps 20 ohms is the approximate range, corresponding toline widths of one to several microns, which is quite large whencompared to the typical line widths that are used in today'scomplementary metal-oxide-semiconductor (CMOS) technology.

Another problem is the generation and propagation of spurious pulses,which can cause subsequent data errors. Specifically, a PTL receiverincludes a single JJ biased near its critical current threshold. Thepulse from the transmission line has sufficient energy to kick the JJabove its critical current threshold, which can cause the JJ to generatean SFQ pulse, which is the desired output. However, the same pulse isalso connected to the transmission line, and can propagate backwardsalong the transmission line toward the PTL driver. Over time, the straypulse dies away after reflections from the ends of the transmissionlines, however if the timing is such that spurious and subsequent datapulses are coincident, then data errors can result. Such data errors canbe avoided by “tuning” the clock frequency and transmission line delaysso that such coincidence is avoided, however this can create seriouspractical problems in a very large scale integration (VLSI) environment,and may reduce the chip flexibility by constraining the clock frequency.Alternatively, the lengths of interconnects can be tuned to avoidcertain timing windows based on an assumed clock frequency. However,this can also lead to serious practical difficulties, as the physicallayout may need to be changed to modify the transmission line lengths,which can be very difficult for densely wired layouts.

In some SFQ technologies, the bias current of a JJ is determined by thechip supply voltage divided by the dropping resistance associated withthe JJ. Thus, there are three independent random variables that controlthe switching threshold of the JJ: the critical current threshold (I_(c) ), bias voltage (V_(bias)), and the dropping resistance (R_(drop)).The minimum signal amplitude that can be reliably detected is dependenton the statistical variations of these three components. Largevariations can occur in these three components due to variations inprocess and operating conditions, and because of these variations, thesensitivity of the SFQ devices can be low. The low sensitivity of SFQdevices can, in turn, limit the impedance of PTLs to low values and candiscourage the use of PTL impedance matching because it can reduce theamplitude. Although lower impedance allows a larger signal amplitude tobe injected into the line from a fixed-amplitude source such as a PTLdriver, a lower impedance also takes up more area.

Some embodiments described herein can use a first JJ to provide a biascurrent to a second JJ, where the bias current generated by the first JJis numerically equal to the critical current of the first JJ. This biascurrent (which is equal to the critical current of the first JJ) is setto a value slightly smaller than the critical current of the second JJ.In such an SFQ circuit, only local variations in JJ critical currents(i.e., the variation of the critical currents of a set of JJs that arein physical proximity to each other) are expected to affect theswitching threshold. In a high-quality process, local variations in JJcritical currents (e.g., critical current variations between adjacentJJs) are substantially smaller compared to the global variations (e.g.,variations across the entire IC chip) which limit the sensitivity ofexisting SFQ technology.

In this disclosure, a JJ-based current source (JCS) refers to a currentsource that (1) includes a JJ, and (2) is used to bias another JJ. Thecombination of JCS-based SFQ circuits with PTL-based interconnectsallows the use of higher impedance (narrower line width) transmissionlines without loss of transmission integrity. Note that higher impedancelines are less sensitive to turns and vias and result in significantlydenser routing. The JCS-based SFQ circuits disclosed herein feature amatching back termination resistance at the output of the SFQ circuit,which removes the “resonance” problem (data errors at sharply definedclock frequencies and line lengths) that exists in traditional SFQtechnologies. The outputs and the inputs of the JCS-based SFQ cells canbe directly connected to PTLs (i.e., without using PTL drivers andreceivers). The SFQ circuit designs and SFQ circuit design methodologiespresented in this disclosure can leverage existing EDA tools to designdense and energy efficient SFQ-based integrated circuits.

FIG. 1A illustrates a JCS-based SFQ buffer circuit in accordance withsome embodiments described herein. JCS-based SFQ buffer circuit 100includes: input terminal 102, clock terminal 104, and output terminal106; superconducting inductors 108, 110, 112, 114, 116, 118, 120, and122; termination resistance 124; JJs 126, 128, and 130; and JCSs 132 and134.

The current supplied by JCSs 132 and 134 is used to bias JJs 126, 128,and 130. Specifically, the bias currents of the JJs 126, 128, and 130are set to a level that is less than their critical current I_(c), andlarger than I_(c) minus the input pulse amplitude that is desired totrigger the JJs (e.g., the minimum input pulse amplitude that is desiredto trigger the JJs). Note that, this range of current values (i.e., lessthan I_(c), and greater than I_(c) minus the input pulse amplitude thatis desired to trigger the JJs) can be substantially smaller than thecritical current I.

During operation, input pulses can be received at input terminal 102 andclock pulses can be received at clock terminal 104. In SFQ circuits, asequence of clock pulses can be used to discretize time into a sequenceof time periods (or time frames), and a unit of information can beencoded in a given time period based on whether or not a pulse ispresent in the time period.

JCS-based SFQ buffer circuit 100 has two stable states that correspondto the absence or presence of a clockwise persistent current thatcirculates in the superconducting loop that includes inductors 108, 110,112, and 114, and junctions 126 and 128. When a clock pulse is receivedat clock terminal 104, the state stored in JCS-based SFQ buffer circuit100 is outputted on output terminal 106, and JCS-based SFQ buffercircuit 100 is reset to a first state, which is also referred to as the“reset” state for the circuit shown in FIG. 1A. The reset statecorresponds to the absence of a clockwise persistent current circulatingin the superconducting loop that includes inductors 108, 110, 112, and114, and junctions 126 and 128.

If no input pulse is received at input terminal 102 before the nextclock pulse, then JCS-based SFQ buffer circuit 100 remains in the firststate (i.e., the reset state). On the other hand, if at least one inputpulse is received at input terminal 102, then junction 126 pulses,establishing a clockwise persistent current around the superconductingloop that includes junctions 126 and 128 and storage inductor 112, whichcauses the JCS-based SFQ buffer circuit 100 to switch to a second state,which is also referred to as the “set” state for the circuit shown inFIG. 1A. Note that, if the JCS-based SFQ buffer circuit 100 is alreadyin the second state, the arrival of additional input pulses at inputterminal 102 does not toggle the state, i.e., the JCS-based SFQ buffercircuit 100 remains in the second state.

When the next clock pulse is received at clock terminal 104, JCS-basedSFQ buffer circuit 100 outputs an output pulse at output terminal 106only when SFQ buffer circuit 100 is in the second state. If SFQ buffercircuit 100 is in the second state (i.e., the set state), then thearrival of a clock pulse at clock terminal 104 annihilates the clockwisepersistent current, which transitions SFQ buffer circuit 100 to thefirst state (i.e., the reset state). In this manner, JCS-based SFQbuffer circuit 100 can store information of whether or not an inputpulse was received in the previous time period.

FIG. 1B illustrates a JCS in accordance with some embodiments describedherein. JCS 132 can have two terminals, 132-1 and 132-2. As shown inFIG. 1A, terminal 132-1 can be electrically connected to superconductinginductors 110 and 112, and terminal 132-2 can be electrically connectedto ground. JCS 132 includes bias voltage source 132-5, superconductinginductor 132-4, and JJ 132-3 that are electrically connected in seriesas shown in FIG. 1B.

FIG. 1C illustrates a portion of a circuit design that includes aJCS-based SFQ buffer circuit in accordance with some embodimentsdescribed herein. One advantage of the JCS-based SFQ buffer circuitshown in FIG. 1A is that input terminal 102, clock terminal 104, andoutput terminal 106 can be directly coupled to PTLs (i.e., without usingdrivers and receivers at the two ends of the PTLs), which cansubstantially reduce the number of JJs that are used in the circuitdesign (which reduces the complexity and power consumption of theresulting circuit design). Moreover, as noted previously, the PTLs canhave a higher impedance (narrower line width) without loss oftransmission integrity. As shown in FIG. 1C, input terminal 102, clockterminal 104, and output terminal 106 are directly coupled to PTLs 158,160, and 162, respectively. Input pulses 152 and clock pulses 154 can bedirectly received via PTLs 158 and 160, respectively, and output pulses156 can be directly outputted on PTL 162.

FIG. 2A illustrates a JCS-based SFQ multi-input synchronous OR gate inaccordance with some embodiments described herein. Embodiments describedin this disclosure feature library gates in which the output terminalincludes a matching PTL termination resistance in series with the outputJJ. For example, as shown in FIG. 1A, JCS-based SFQ buffer circuit 100includes termination resistance 124.

The termination resistance can be electrically connected to one end of aPTL, and the other end of the PTL can be electrically connected toanother library cell input. The length of the PTL can be between zeroand a maximum value (due to signal loss over the PTL). The maximumallowable length of the PTL depends on various factors, including themanufacturing technology that is used to fabricate the IC.

In the SFQ technology described in this disclosure, the terminals of twoSFQ circuits or cells can be directly connected, i.e., the outputterminal (which includes the termination resistor) of the driver cellcan be directly connected (i.e., by using a PTL of length zero) to theinput terminal of the load cell. The capability to directly couple anoutput terminal of an SFQ cell with an input terminal of another SFQcell is an important distinguishing feature of embodiments describedherein. This capability is not present in traditional SFQ cells, whichdo not include a series resistances between outputs and inputs. Also, inthe SFQ technology described in this disclosure, the series resistanceeliminates current redistribution.

Furthermore, because the SFQ technology described in this disclosureuses resistances, currents can be split and added as in traditional ICdesigns, i.e., without any concern or need for handling quantizationeffects. Specifically, with resistances, wired-OR at inputs andresistive splitting at outputs is possible. The ability to add and splitcurrents in SFQ-based circuit designs is an important advantage becauseit can substantially simplify logic implementation.

Stated differently, any circuit or cell that is designed using the SFQtechnology described herein has the following property: every input canhave a fan-in of two or more, meaning that every input can have amulti-input virtual OR gate driving the pin. Thus, a buffer can be usedas a synchronous multi-input OR gate, and an inverter can be used as asynchronous multi-input NOR gate. The conversion of a buffer to amulti-input OR gate (and likewise the conversion of an inverter to amulti-input NOR gate) can be accomplished by allowing outputs ofmultiple cells to be electrically connected to the input pin of thebuffer gate (or the inverter gate).

Referring to FIG. 2A, in JCS-based SFQ multi-input synchronous OR gate200, multiple sequences of input pulses 202 can be combined using themulti-input wired-OR structure 208. As a non-limiting example, a set ofhorizontal strip lines can be electrically connected with each otherusing a vertical strip line to create the multi-input wired-OR structure208, as shown in FIG. 2A. The combined input pulses 202 can then beinputted into JCS-based SFQ buffer 100 at input terminal 102. Clockpulses 204 can be received over PTL 210 and inputted into clock terminal104. Finally, output terminal 106 can emit output pulses 206. Outputpulses 206 represent a logical “OR” of input pulses 202, and the outputpulses can be propagated over PTL 212 to one or more JCS-based SFQcells.

FIG. 2B illustrates a set of waveforms corresponding to a JCS-based SFQmulti-input synchronous OR gate in accordance with some embodimentsdescribed herein. Waveform 252 shows five clock pulses that are receivedat time instances T1 through T5. The time window between two adjacentclock pulses defines a time period (or time frame) during which inputpulses can arrive on the multiple inputs of JCS-based SFQ multi-inputsynchronous OR gate 200. The input pulses do not need to be synchronizedwith each other, and they can arrive at any time instance within thetime window defined by adjacent clock pulses as long as the input pulsesdo not violate setup and hold timing constraints.

For example, waveforms 254, 256, and 258 illustrate input pulsescorresponding to three inputs of JCS-based SFQ multi-input synchronousOR gate 200. Note that three input pulses are received between timeinstances T1 and T2, and these input pulses are not synchronized witheach other. These three input pulses can be combined by multi-inputwired-OR structure 208 to produce at least one combined input pulse(which can have a different shape than the individual input pulses), andthe combined input pulse can then be inputted into input 102 ofJCS-based SFQ multi-input synchronous OR gate 200, which can cause apersistent current circulating in JCS-based SFQ multi-input synchronousOR gate 200 to be established. Next, upon the arrival of the clock pulseat time instance T2, JCS-based SFQ multi-input synchronous OR gate 200generates an output clock pulse which is shown in waveform 260. Notethat there is a delay between the clock pulse that is received at timeinstance T2, and the output pulse produced by JCS-based SFQ multi-inputsynchronous OR gate 200 after time instance T2.

The clock pulse at time instance T2 resets JCS-based SFQ multi-inputsynchronous OR gate 200 to a reset state. Next, as shown in FIG. 2B, noinput pulses are received between time instances T2 and T3, andJCS-based SFQ multi-input synchronous OR gate 200 remains in the resetstate. Accordingly, when the clock pulse at time instance T3 arrives,JCS-based SFQ multi-input synchronous OR gate 200 does not produce acorresponding output pulse between time instances T3 and T4.

If we assume that the presence of a pulse encodes a binary “1,” and theabsence of a pulse encodes a binary “0,” then the JCS-based SFQmulti-input synchronous OR gate 200 implements a multi-input OR gate.The implemented OR gate is “synchronous” because the output of the ORgate in the current time window is produced upon receiving a clockpulse, and the output (i.e., the presence or absence of a pulse) isbased on the logical OR of the inputs received in the previous timewindow.

FIG. 3A illustrates a JCS-based SFQ inverter circuit in accordance withsome embodiments described herein. JCS-based SFQ inverter circuit 300includes: set terminal 302 (shown as “T” in FIG. 3A), input terminal304, clock terminal 306, and output terminal 308; superconductinginductors 310, 312, 314, 316, 318, 320, 322, 324, and 326; terminationresistance 328; JJs 330, 332, 334, 336, 338, 340, and 342; and JCSs 344,346, 348, and 350.

The current supplied by JCSs 344, 346, 348, and 350 is used to bias theJJs 330, 332, 334, 336, 338, 340, and 342. Specifically, the biascurrents of the JJs 330, 332, 334, 336, 338, 340, and 342 are set to alevel that is less than their critical current I_(c), and larger thanI_(c) minus the input pulse amplitude that is desired to trigger the JJs(e.g., the minimum input pulse amplitude that is desired to trigger theJJs). Note that, this range of current values (i.e., less than I_(c),and greater than I_(c) minus the input pulse amplitude that is desiredto trigger the JJs) can be substantially smaller than the criticalcurrent I.

The circuit shown in FIG. 3A can be viewed as including: a firstsub-circuit to store a reset state or a set state, where the firstsub-circuit includes JJs 338, 340, and 342; a second sub-circuit toswitch the first sub-circuit to the set state in response to receiving apulse at set terminal 302, where the second sub-circuit includes JJ 330;and a third sub-circuit to switch the first sub-circuit to the resetstate in response to receiving one or more pulses at input terminal 304,where the third sub-circuit includes JJs 332, 334, and 336.

During operation, input pulses can be received at input terminal 304 andclock pulses can be received at clock terminal 306. The clock pulses canalso be provided to set terminal 302 (the clock pulses that are providedto clock terminal 306 may be a delayed version of the clock pulses thatare provided to set terminal 302), which can set the JCS-based SFQinverter circuit 300 at the beginning of each time period.

JCS-based SFQ inverter circuit 300 has two stable states that correspondto the absence or presence of a clockwise persistent current thatcirculates in the superconducting loop that includes junction 330,inductor 312, and the components connected through inductors 314 and316. When a clock pulse is received at clock terminal 306, the statestored in JCS-based SFQ inverter circuit 300 is outputted on outputterminal 308. Specifically, if the JCS-based SFQ inverter circuit 300 isin a first state (i.e., the reset state), the arrival of a clock pulseat clock terminal 306 does not cause JCS-based SFQ inverter circuit 300to emit a corresponding output pulse at output terminal 308. On theother hand, if the JCS-based SFQ inverter circuit 300 is in a secondstate (i.e., the set state), the arrival of a clock pulse at clockterminal 306 causes JCS-based SFQ inverter circuit 300 to emit acorresponding output pulse at output terminal 308.

At the beginning of a time period, a clock pulse can be received at setterminal 302, which transitions JCS-based SFQ inverter circuit 300 tothe second state. If no input pulse is received at input terminal 304before the next clock pulse, then JCS-based SFQ inverter circuit 300remains in the second state (i.e., the “set” state). On the other hand,if at least one input pulse is received at input terminal 304, then thepersistent current that is circulating in the superconducting loop isannihilated, which causes the JCS-based SFQ inverter circuit 300 toswitch to the first state (i.e., the “reset” state). When the JCS-basedSFQ inverter circuit 300 is in the first state (i.e., the “reset”state), receiving additional input pulses at the input terminal 304 doesnot cause JCS-based SFQ inverter circuit 300 to switch to the secondstate (i.e., the “set” state). In other words, if JCS-based SFQ invertercircuit 300 is in the first state, then JCS-based SFQ inverter circuit300 continues to remain in the first state even if multiple input pulsesare received at input terminal 304.

When the next clock pulse is received at clock terminal 306, JCS-basedSFQ inverter circuit 300 outputs an output pulse at output terminal 308only if it is in the second state. In this manner, JCS-based SFQinverter circuit 300 implements inverter functionality by (1) emittingan output pulse at the output terminal 308 if no input pulse wasreceived at the input terminal 304 in the previous time period, and (2)not emitting an output pulse at the output terminal 308 if at least oneinput pulse was received at the input terminal 304 in the previous timeperiod.

FIG. 3B illustrates a portion of a circuit design that includes aJCS-based SFQ inverter circuit in accordance with some embodimentsdescribed herein. An advantage of JCS-based SFQ inverter circuit 300shown in FIG. 3A is that input terminal 304 and clock terminal 306 canbe directly coupled to PTLs (i.e., without using drivers and receiversat the two ends of the PTLs), which can substantially reduce the numberof JJs that are used in the circuit design (which reduces the complexityand power consumption of the resulting circuit design). Moreover, asnoted previously, the PTLs can have a higher impedance (narrower linewidth) without loss of transmission integrity.

As shown in FIG. 3B, set terminal 302, input terminal 304, clockterminal 306, and output terminal 308 can be directly coupled to PTLs364, 358, 360, and 362, respectively. Input pulses 352 can be directlyreceived via PTL 358, and clock pulses 354 can be directly received viaPTLs 360 and 364. Output pulses 356 can be directly outputted on PTL362.

FIG. 4A illustrates a JCS-based SFQ multi-input synchronous NOR gate inaccordance with some embodiments described herein. Embodiments describedin this disclosure feature library gates in which the output terminalincludes a matching PTL termination resistance in series with the outputJJ. For example, as shown in FIG. 3A, JCS-based SFQ inverter circuit 300includes termination resistance 328. The termination resistance can beelectrically connected to one end of a PTL, and the other end of the PTLcan be electrically connected to another library cell input. The lengthof the PTL can be between zero and a maximum value (due to signal lossover the PTL). The maximum allowable length of the PTL depends onvarious factors, including the manufacturing technology that is used tofabricate the IC.

In JCS-based SFQ multi-input synchronous NOR gate 400, multiplesequences of input pulses 402 can be combined using the multi-inputwired-OR structure 408. As a non-limiting example, a set of horizontalstrip lines can be electrically connected with each other using avertical strip line to create the multi-input wired-OR structure 408shown in FIG. 4A. The combined input pulses 402 can then be inputtedinto JCS-based SFQ inverter 300 at input terminal 304. Clock pulses 404can be received over PTL 410 and inputted into clock terminal 306, andcan also be received over PTL 414 and inputted into set terminal 302.Finally, output terminal 308 can emit output pulses 406. Output pulses406 can represent a logical “NOR” of input pulses 402, and the outputpulses 406 can be propagated over PTL 412 to one or more JCS-based SFQcircuits or cells.

FIG. 4B illustrates a set of waveforms corresponding to a JCS-based SFQmulti-input synchronous NOR gate in accordance with some embodimentsdescribed herein.

Waveform 452 shows five clock pulses that are received at time instancesT1 through T5. The time window between two adjacent clock pulses definesa time period during which input pulses can arrive on the multipleinputs of JCS-based SFQ multi-input synchronous NOR gate 400. The inputpulses do not need to be synchronized with each other, and they canarrive at any time instance within the time window defined by adjacentclock pulses as long as the input pulses do not violate setup and holdtiming constraints.

For example, waveforms 454, 456, and 458 illustrate input pulsescorresponding to three inputs of JCS-based SFQ multi-input synchronousNOR gate 400. When the clock pulse at time instance T1 is received atthe set input 302, JCS-based SFQ inverter 300 is switched to the secondstate. As shown in FIG. 4B, three input pulses are received between timeinstances T1 and T2. Note that these input pulses need not besynchronized, as shown in FIG. 4B. These three input pulses can becombined by multi-input wired-OR structure 408 to produce at least onecombined input pulse (which can have a different shape than theindividual input pulses), and the combined input pulse can then beinputted into JCS-based SFQ inverter 300, which can cause the persistentcurrent circulating in JCS-based SFQ inverter 300 to be annihilated.Next, as shown in waveform 460, upon the arrival of the clock pulse attime instance T2, JCS-based SFQ inverter 300 may not emit an outputclock pulse.

The clock pulse at time instance T2 again sets JCS-based SFQ multi-inputsynchronous NOR gate 400 to a set state. Next, as shown in FIG. 4B, noinput pulses are received between time instances T2 and T3, andJCS-based SFQ multi-input synchronous NOR gate 400 remains in the setstate. Accordingly, when the clock pulse at time instance T3 arrives,JCS-based SFQ multi-input synchronous NOR gate 400 produces acorresponding output pulse between time instances T3 and T4. Note thatthere is a delay between the clock pulse that is received at timeinstance T3, and the output pulse produced by JCS-based SFQ multi-inputsynchronous OR gate 400 after time instance T3.

If we assume that the presence of a pulse encodes a binary “1,” and theabsence of a pulse encodes a binary “0,” then JCS-based SFQ multi-inputsynchronous NOR gate 400 implements a multi-input NOR gate. Theimplemented NOR gate is “synchronous” because the output of the NOR gatein the current time window is produced when a clock pulse is received atthe clock terminal, and the produced output (i.e., the presence orabsence of a pulse) is based on the logical NOR of the inputs receivedin the previous time window.

FIG. 5A illustrates a circuit design methodology for JCS-based SFQcircuits in accordance with some embodiments described herein. Theprocess illustrated in FIG. 5A can begin by creating a logic network toimplement a high-level functional description of an IC design, whereeach logic gate in the logic network corresponds to one or moreJCS-based SFQ cells in a JCS-based SFQ cell library (operation 502).Next, the process can place JCS-based SFQ cells in an IC design area,where the JCS-based SFQ cells correspond to logic gates in the logicnetwork (operation 504). The process can then route PTLs to interconnectinputs and outputs of the placed JCS-based SFQ cells based on theinterconnectivity specified in the logic network (operation 506). Insome embodiments, the process illustrated in FIG. 5A can be performed bya processor.

FIG. 5B illustrates a portion of a circuit design that may be created byusing the process illustrated in FIG. 5A in accordance with someembodiments described herein. Each cell is shown to have threeterminals—the left terminal is the input terminal, the right terminal isthe output terminal, and the top terminal is the clock terminal. Notethat some cells (e.g., the JCS-based SFQ inverter circuit illustrated inFIG. 3A) may include more than three terminals. Also, the clock treethat feeds clock pulses to each cell has not been shown in FIG. 5B. InFIG. 5B, PTLs (shown as thick lines) have been used to routeinterconnections between the cells. Specifically, the PTL structure thatfeeds the input terminal of JCS-based SFQ cell 556 implements a wired-ORstructure that performs a logical OR of the outputs of JCS-based SFQcells 552 and 554. The output of JCS-based SFQ cell 556 is split andprovided as input to JCS-based SFQ cells 558 and 560. Note that the PTLstructure connected to the output of JCS-based SFQ cell 556 functions asa splitter.

In existing SFQ technology, the designer typically tweaks clock and datatiming with JTLs, and cannot just connect logic gates and have a workinglogic network. Instead, the designer must carefully engineer the timing.The SFQ technology described in this disclosure overcomes this drawbackin existing SFQ technology. Additionally, SFQ cells designed using theSFQ technology described in this disclosure can use gates that arecascadable with zero-skew clocking. Extra delay may need to be added tosome gates, e.g., by using the JCS-based SFQ buffer circuit. In otherwords, the JCS-based SFQ buffer circuit can be used as a synchronousshift register.

The use of PTLs changes how timing references are defined. Currently,there is no standard for defining timing references. A set of timingdefinitions that can be used for cells designed using the SFQ technologyare now described. Every logic cell can be synchronous, with a clockinput, one or more data inputs, and a data output. A logic cell may alsohave other inputs, e.g., a set input as in the JCS-based SFQ invertercircuit that was described above. Upon receiving a clock pulse, theinternal state of the logic cell can generate an output pulse or notgenerate an output pulse, and the logic cell can be returned back to aready state. The term “ready state” refers to a state in which the cellis ready to receive and process new input data (i.e., input pulses).

While the cell is switching to its ready state, input data should notappear, as results would be undefined. In this disclosure, this timeperiod is referred to as the “hold time.” Once the cell has reached astable ready state, the cell is ready to accept new input.

An input pulse can change the internal state of the cell to a differentstate. Whatever the internal state of the cell, it can be read with aclock pulse. The minimum time to establish the new internal state uponreceiving an input pulse, i.e., the minimum time between an input pulseand the subsequent clock pulse, is referred to as the “setup time” inthis disclosure.

A timing violation can occur if either of the “hold time” or the “setuptime” constraints are violated. Specifically, a hold time violationoccurs if an input pulse arrives before the cell has reached a stableready state. A setup time violation occurs if a subsequent clock pulse(that causes the state of the cell to be outputted) arrives before thecell has been able to transition to a stable new state based on thereceived input data. The cell can produce undefined results when atiming violation occurs. When a clock pulse is received, the cell mayproduce an output pulse at the output terminal. The delay time betweenthe clock pulse and the output pulse is referred to as the “latency” or“clock-to-Q-delay” of the cell.

FIG. 6 illustrates three cell timing parameters in accordance with someembodiments described herein. The timing characteristics of cellsdesigned using the SFQ technology described herein can be captured byusing these three parameters, namely, hold time, setup time, andclock-to-Q-delay.

The following paragraphs describe approaches for designing an IC design,and supplying clock pulses to the SFQ cells in the IC design. In someembodiments, a classic pipeline design methodology can be used, wherecombinatorial logic networks appear between banks of D flip-flops(D-FFs). For example, JCS-based SFQ buffer circuit 100 shown in FIG. 1Acan be used as a D-FF. A system clock can be provided, and a clock pulsecan be applied to each D-FF synchronously. Logic networks can includetimed gates (the terms “SFQ cell,” “logic gate,” “gate,” etc. are usedinterchangeably in this disclosure), where no output appears until atiming pulse is given. The timing pulse can also be used to clear anyinternal state of the logic gate. The output represents the effect ofpulses applied to the gate inputs since the last timing pulse. Within alogic network, data can flow from left to right. Data flow from right toleft can be achieved by buffering data through the D-FF banks.

Assume for simplicity that all gates have the same delay from the timingpulse to the appearance of an output pulse. Each gate can be identifiedwith a particular time slice or time period, which is a multiple of thesum of the delay and a setup time, based on the maximum time slice ofinputs.

To ensure that each logic gate receives a timing pulse at theappropriate time instance, a sequencing circuit can be constructed whoseoutputs are timing pulses that are delivered to each logic gate, so thateach gate receives the timing pulse at the correct time for the gate.The sequencing circuit can be constructed by using JTLs and splitters.Specifically, the sequencing circuit can take as input the system clock(as supplied to the D-FFs) and produce output pulses correctly timed foreach gate.

The maximum number of slices used by a logic network in the system candetermine the maximum system clock rate. At slower rates, the output ofthe SFQ cells may be ready well ahead of the next clock pulse. In theapproach described herein, the system clock (which can include asequence of clock pulses) can be applied to the D-FFs and clockingcircuits, not individual gates, which can greatly simplify system clockdistribution.

The construction of the sequencing circuit can be automated. Thesequencing circuit can include a JTL which generates the time slicepulses, which are split by splitters according to the number of gates inthe time slice. The splitters themselves can have delay, so that theinput of the splitter tree may have to come from an earlier time slicethan the actual time slice of the logic gate to which the clock pulse isto be provided. The clocking described herein is multi-phasing, which isdifferent from higher-speed clocking. Each time slice receives one clockpulse per system clock. Furthermore, note that variations due to processand operating conditions in the time delay of JTL stages, splitters, andgates track corresponding variations to the critical current density.

FIG. 7A illustrates an SFQ-based circuit design including a sequencingcircuit to provide delayed clock pulses to cells in accordance with someembodiments described herein. In the portion of a circuit design shownin FIG. 7A, combinational logic networks 722 and 724 are coupled tobanks of D-FFs that include D-FFs 702, 704, 706, and 708. Combinationallogic network 722 can include logic gates 710, 712, and 714 which areinterconnected as shown in FIG. 7A. Each D-FF and logic gate shown inFIG. 7A can be implemented using the JCS-based SFQ technology disclosedherein. A sequencing circuit that includes delay elements 716, 718, and720 can be used to provide a clock pulse with the appropriate delay tologic gates 710, 712, and 714, respectively. Each delay element (e.g.,delay elements 716, 718, and 720) can include (1) a JTL that receives aclock pulse at its input and generates a delayed version of the clockpulse, and (2) a splitter network to generate at least two copies of thedelayed version of the clock pulse, where one copy is provided to theinput of the JTL in the next delay element, and other copies areprovided to logic gates.

FIG. 7B illustrates an SFQ-based circuit design including a sequencingcircuit to provide delayed clock pulses to cells in accordance with someembodiments described herein. The design shown in FIG. 7B is similar tothe one shown in FIG. 7A, except that the sequencing circuit isconstructed using a series of D-FFs that form a shift register, and thatare timed using a local fast clock that can be generated internally onthe chip. One advantage of the design shown in FIG. 7B is that it canprovide variable delay to the logic gates. In the circuit design portionshown in FIG. 7B, combination logic networks 772 and 774 are coupled tobanks of D-FFs that include D-FFs 752, 754, 756, and 758. Combinationallogic network 772 can include logic gates 760, 762, and 764 which areinterconnected as shown in FIG. 7B. Each D-FF and logic gate shown inFIG. 7B can be designed using the JCS-based SFQ technology disclosedherein. A sequencing circuit that includes delay elements 766, 768, and770 can be used to provide a clock pulse with the appropriate delay tologic gates 760, 762, and 764, respectively. Each delay element (e.g.,delay elements 766, 768, and 770) can include (1) a D-FF that receives aclock pulse at its input and generates a delayed version of the clockpulse, and (2) a splitter network to generate at least two copies of thedelayed version of the clock pulse, where one copy is provided to theinput of the D-FF in the next delay element, and other copies areprovided to logic gates. The D-FFs in the delay elements can be provideda local fast clock signal that can be generated on chip.

FIG. 7C illustrates a sequencing circuit to provide delayed clock pulsesto cells in accordance with some embodiments described herein. Delayelements 792 and 794 can be constructed using either JTLs (as explainedin reference to FIG. 7A) or D-FFs (as explained in reference to FIG.7B). In FIG. 7C, each delay output can be split into multiple copies todrive similar clock frames from different pipeline stages. Consolidationof the sequencing circuitry in this manner can reduce the total devicecount used in the sequencing circuitry.

FIG. 8 illustrates how a timed inverter can be used in circuit designsin accordance with some embodiments described herein. Timed inverter 800can be JCS-based SFQ inverter 300 shown in FIG. 3A. Let us assume thatthe timed inverter 800 is being used as a NOR gate (e.g., as explainedin reference to FIGS. 4A-4B), and it receives two inputs from logicgates in clock frames i and j (the term “clock frame” refers to aparticular delayed version of a clock pulse). The “T” signal is splitfrom the clock frame min(i, j), and is applied to the T input. Themin(i, j) clock frame refers to the earlier clock frame between the twoclock frames i and j. The CLK signal is given the clock pulse frommax(i, j)+1 clock frame (this clock is also provided to other gates ingeneral), and the output of the timed inverter 800 (which is also trueof other gates in general) appears in this frame, i.e., in frame max(i,j)+1.

FIG. 9 illustrates a process for synthesizing a clock network for aSFQ-based circuit design in accordance with some embodiments describedherein. In some embodiments, the process illustrated in FIG. 9 can beperformed by a processor. The process can begin by assigning a depthlevel to logic gates (e.g., logic gates 710, 712, and 714 in FIG. 7A) inan SFQ combinational logic network (operation 902). Specifically, thedepth level of a logic gate is one more than the maximum input depthlevel across all of the inputs of the logic gate. If an input of a logicgate is coupled to an output of a D-FF that feeds the logic network,then that input is assigned a depth level zero. Otherwise, the depthlevel of an input is equal to the depth level of the logic gate that isdriving the input. This process can be carried out recursively from theleft to the right to assign a depth level to each logic gate in thecombinational logic network. For example, when this process is used toassign levels to gates of combinational logic cloud 722, logic gate 710can be assigned depth level 1, logic gate 712 can be assigned depthlevel 2, and logic gate 714 can be assigned depth level 3.

The process can then determine a count of gates in each depth level,where each depth level corresponds to a timing frame (operation 904).Specifically, in some embodiments, the process can create a table suchthat each row in the table can correspond to a certain depth level, anda value stored in each row can represent the count of gates that are inthat depth level. Note that the length of the table (i.e., the number ofrows in the table) can be the depth of the logic network. The count ofgates at a particular depth level can also represent the number of clocksinks in that timing frame.

Next, the process can create a splitter layout for each depth levelbased on the number of gates that are in each depth level (operation906). The process can then instantiate the desired number of delayelements and taps for constructing the splitter layout for each timingframe (operation 908). Note that the process can use a small library ofdelay cells and splitter elements, which can be permuted to provide thetiming pulses in the desired numbers and frames.

FIG. 10 illustrates an example flow 1000 for the design, verification,and fabrication of an integrated circuit in accordance with someembodiments described herein. EDA processes 1012 (as may have beenmentioned above, the acronym “EDA” refers to “Electronic DesignAutomation”) can be used to transform and verify design data andinstructions that represent the integrated circuit. Each of theseprocesses can be structured and enabled as multiple modules oroperations.

Flow 1000 can start with the creation of a product idea 1010 withinformation supplied by a designer, information which is transformed andverified by using EDA processes 1012. When the design is finalized, thedesign is taped-out 1034, which is when artwork (e.g., geometricpatterns) for the integrated circuit is sent to a fabrication facilityto manufacture the mask set, which is then used to manufacture theintegrated circuit. After tape-out, a semiconductor die is fabricated1036 and packaging and assembly 1038 are performed to produce themanufactured IC chip 1040.

Specifications for a circuit or electronic structure may range fromlow-level transistor material layouts to high-level descriptionlanguages. A high-level of abstraction may be used to design circuitsand systems, using a hardware description language (“HDL”) such as VHDL,Verilog, SystemVerilog, SystemC, MyHDL or OpenVera. The HDL descriptioncan be transformed to a logic-level register transfer level (“RTL”)description, a gate-level description, a layout-level description, or amask-level description. Each lower abstraction level that is a lessabstract description adds more detail into the design description. Thelower levels of abstraction that are less abstract descriptions can begenerated by a computer, derived from a design library, or created byanother design automation process. An example of a specificationlanguage at a lower level of abstraction language for specifying moredetailed descriptions is SPICE (which stands for “Simulation Programwith Integrated Circuit Emphasis”). Descriptions at each level ofabstraction contain details that are sufficient for use by thecorresponding tools of that layer (e.g., a formal verification tool).

During system design 1014, functionality of an integrated circuit to bemanufactured is specified. The design may be optimized for desiredcharacteristics such as power consumption, performance, area (physicaland/or lines of code), and reduction of costs, etc. Partitioning of thedesign into different types of modules or components can occur at thisstage.

During logic design and functional verification 1016, modules orcomponents in the circuit are specified in one or more descriptionlanguages and the specification is checked for functional accuracy. Forexample, the components of the circuit may be verified to generateoutputs that match the requirements of the specification of the circuitor system being designed. Functional verification may use simulators andother programs such as testbench generators, static HDL checkers, andformal verifiers. In some embodiments, special systems of componentsreferred to as ‘emulators’ or ‘prototyping systems’ are used to speed upthe functional verification.

During synthesis and design for test 1018, HDL code is transformed to anetlist. In some embodiments, a netlist may be a graph structure whereedges of the graph structure represent components of a circuit and wherethe nodes of the graph structure represent how the components areinterconnected. Both the HDL code and the netlist are hierarchicalarticles of manufacture that can be used by an EDA product to verifythat the integrated circuit, when manufactured, performs according tothe specified design. The netlist can be optimized for a targetsemiconductor manufacturing technology. Additionally, the finishedintegrated circuit may be tested to verify that the integrated circuitsatisfies the requirements of the specification.

During netlist verification 1020, the netlist is checked for compliancewith timing constraints and for correspondence with the HDL code. Duringdesign planning 1022, an overall floor plan for the integrated circuitis constructed and analyzed for timing and top-level routing.

During layout or physical implementation 1024, physical placement(positioning of circuit components such as transistors or capacitors)and routing (connection of the circuit components by multipleconductors) occurs, and the selection of cells from a library to enablespecific logic functions can be performed. As used herein, the term‘cell’ may specify a set of transistors, other components, andinterconnections that provides a Boolean logic function (e.g., AND, OR,NOT, XOR) or a storage function (such as a flipflop or latch). As usedherein, a circuit ‘block’ may refer to two or more cells. Both a celland a circuit block can be referred to as a module or component and areenabled as both physical structures and in simulations. Parameters arespecified for selected cells (based on ‘standard cells’) such as sizeand made accessible in a database for use by EDA products.

During analysis and extraction 1026, the circuit function is verified atthe layout level, which permits refinement of the layout design. Duringphysical verification 1028, the layout design is checked to ensure thatmanufacturing constraints are correct, such as DRC constraints,electrical constraints, lithographic constraints, and that circuitryfunction matches the HDL design specification. During resolutionenhancement 1030, the geometry of the layout is transformed to improvehow the circuit design is manufactured.

During tape-out, data is created to be used (after lithographicenhancements are applied if appropriate) for production of lithographymasks. During mask data preparation 1032, the ‘tape-out’ data is used toproduce lithography masks that are used to produce finished integratedcircuits.

A storage subsystem of a computer system (such as computer system 1100of FIG. 11 ) may be used to store the programs and data structures thatare used by some or all of the EDA products described herein, andproducts used for development of cells for the library and for physicaland logical design that use the library.

FIG. 11 illustrates an example machine of a computer system 1100 withinwhich a set of instructions, for causing the machine to perform any oneor more of the methodologies discussed herein, may be executed. Inalternative implementations, the machine may be connected (e.g.,networked) to other machines in a LAN, an intranet, an extranet, and/orthe Internet. The machine may operate in the capacity of a server or aclient machine in client-server network environment, as a peer machinein a peer-to-peer (or distributed) network environment, or as a serveror a client machine in a cloud computing infrastructure or environment.

The machine may be a personal computer (PC), a tablet PC, a set-top box(STB), a Personal Digital Assistant (PDA), a cellular telephone, a webappliance, a server, a network router, a switch or bridge, or anymachine capable of executing a set of instructions (sequential orotherwise) that specify actions to be taken by that machine. Further,while a single machine is illustrated, the term “machine” shall also betaken to include any collection of machines that individually or jointlyexecute a set (or multiple sets) of instructions to perform any one ormore of the methodologies discussed herein.

The example computer system 1100 includes a processing device 1102, amain memory 1104 (e.g., read-only memory (ROM), flash memory, dynamicrandom access memory (DRAM) such as synchronous DRAM (SDRAM), a staticmemory 1106 (e.g., flash memory, static random access memory (SRAM),etc.), and a data storage device 1118, which communicate with each othervia a bus 1130.

Processing device 1102 represents one or more processors such as amicroprocessor, a central processing unit, or the like. Moreparticularly, the processing device may be complex instruction setcomputing (CISC) microprocessor, reduced instruction set computing(RISC) microprocessor, very long instruction word (VLIW) microprocessor,or a processor implementing other instruction sets, or processorsimplementing a combination of instruction sets. Processing device 1102may also be one or more special-purpose processing devices such as anapplication specific integrated circuit (ASIC), a field programmablegate array (FPGA), a digital signal processor (DSP), network processor,or the like. The processing device 1102 may be configured to executeinstructions 1126 for performing the operations and steps describedherein.

The computer system 1100 may further include a network interface device1108 to communicate over the network 1120. The computer system 1100 alsomay include a video display unit 1110 (e.g., a liquid crystal display(LCD) or a cathode ray tube (CRT)), an alphanumeric input device 1112(e.g., a keyboard), a cursor control device 1114 (e.g., a mouse), agraphics processing unit 1122, a signal generation device 1116 (e.g., aspeaker), graphics processing unit 1122, video processing unit 1128, andaudio processing unit 1132.

The data storage device 1118 may include a machine-readable storagemedium 1124 (also known as a non-transitory computer-readable medium) onwhich is stored one or more sets of instructions 1126 or softwareembodying any one or more of the methodologies or functions describedherein. The instructions 1126 may also reside, completely or at leastpartially, within the main memory 1104 and/or within the processingdevice 1102 during execution thereof by the computer system 1100, themain memory 1104 and the processing device 1102 also constitutingmachine-readable storage media.

In some implementations, the instructions 1126 include instructions toimplement functionality corresponding to the present disclosure. Whilethe machine-readable storage medium 1124 is shown in an exampleimplementation to be a single medium, the term “machine-readable storagemedium” should be taken to include a single medium or multiple media(e.g., a centralized or distributed database, and/or associated cachesand servers) that store the one or more sets of instructions. The term“machine-readable storage medium” shall also be taken to include anymedium that is capable of storing or encoding a set of instructions forexecution by the machine and that cause the machine and the processingdevice 1102 to perform any one or more of the methodologies of thepresent disclosure. The term “machine-readable storage medium” shallaccordingly be taken to include, but not be limited to, solid-statememories, optical media, and magnetic media.

Some portions of the preceding detailed descriptions have been presentedin terms of algorithms and symbolic representations of operations ondata bits within a computer memory. These algorithmic descriptions andrepresentations are the ways used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm may be a sequence ofoperations leading to a desired result. The operations are thoserequiring physical manipulations of physical quantities. Such quantitiesmay take the form of electrical or magnetic signals capable of beingstored, combined, compared, and otherwise manipulated. Such signals maybe referred to as bits, values, elements, symbols, characters, terms,numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the present disclosure,it is appreciated that throughout the description, certain terms referto the action and processes of a computer system, or similar electroniccomputing device, that manipulates and transforms data represented asphysical (electronic) quantities within the computer system's registersand memories into other data similarly represented as physicalquantities within the computer system memories or registers or othersuch information storage devices.

The present disclosure also relates to an apparatus for performing theoperations herein. This apparatus may be specially constructed for theintended purposes, or it may include a computer selectively activated orreconfigured by a computer program stored in the computer. Such acomputer program may be stored in a computer readable storage medium,such as, but not limited to, any type of disk including floppy disks,optical disks, CD-ROMs, and magnetic-optical disks, read-only memories(ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic oroptical cards, or any type of media suitable for storing electronicinstructions, each coupled to a computer system bus.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various other systems maybe used with programs in accordance with the teachings herein, or it mayprove convenient to construct a more specialized apparatus to performthe method. In addition, the present disclosure is not described withreference to any particular programming language. It will be appreciatedthat a variety of programming languages may be used to implement theteachings of the disclosure as described herein.

The present disclosure may be provided as a computer program product, orsoftware, that may include a machine-readable medium having storedthereon instructions, which may be used to program a computer system (orother electronic devices) to perform a process according to the presentdisclosure. A machine-readable medium includes any mechanism for storinginformation in a form readable by a machine (e.g., a computer). Forexample, a machine-readable (e.g., computer-readable) medium includes amachine (e.g., a computer) readable storage medium such as a read onlymemory (“ROM”), random access memory (“RAM”), magnetic disk storagemedia, optical storage media, flash memory devices, etc.

In the foregoing disclosure, implementations of the disclosure have beendescribed with reference to specific example implementations thereof. Itwill be evident that various modifications may be made thereto withoutdeparting from the broader spirit and scope of implementations of thedisclosure as set forth in the following claims. Where the disclosurerefers to some elements in the singular tense, more than one element canbe depicted in the figures and like elements are labeled with likenumerals. The disclosure and drawings are, accordingly, to be regardedin an illustrative sense rather than a restrictive sense.

What is claimed is:
 1. A circuit, comprising: a first sub-circuit tostore a reset state or a set state, the first sub-circuit comprising afirst Josephson junction (JJ), a second JJ, and a third JJ coupled inparallel using superconducting inductors, wherein the first JJ, thesecond JJ, and the third JJ are biased using one or more JJ-basedcurrent sources, wherein the first JJ is biased using a bias currentthat is less than a critical current of the first JJ and greater thanthe critical current of the first JJ minus an input pulse amplitude thatis desired to trigger the first JJ; a second sub-circuit to switch thefirst sub-circuit to the set state in response to receiving a pulse; anda third sub-circuit to switch the first sub-circuit to the reset statein response to receiving one or more pulses.
 2. The circuit of claim 1,wherein the second JJ is biased using a bias current that is less than acritical current of the second JJ and greater than the critical currentof the second JJ minus an input pulse amplitude that is desired totrigger the second JJ.
 3. The circuit of claim 1, wherein the third JJis biased using a bias current that is less than a critical current ofthe third JJ and greater than the critical current of the third JJ minusan input pulse amplitude that is desired to trigger the third JJ.
 4. Thecircuit of claim 1, wherein each JJ-based current source comprises abias voltage source, a superconducting inductor, and a JJ coupled inseries.
 5. The circuit of claim 1, wherein a set terminal is coupled tothe second sub-circuit, an input terminal is coupled to the thirdsub-circuit, a clock terminal is coupled to the first JJ, and an outputterminal is coupled to the third JJ via a termination resistance.
 6. Thecircuit of claim 5, wherein the input terminal, the clock terminal, andthe output terminal are electrically connected to respective passivetransmission lines.
 7. The circuit of claim 5, wherein the inputterminal is electrically connected to a multi-input wired-OR structurethat combines pulses received from multiple circuits.
 8. The circuit ofclaim 5, wherein the reset state corresponds to an absence of apersistent current circulating in a superconducting loop comprising thefirst JJ and the second JJ.
 9. The circuit of claim 8, wherein the setstate corresponds to a presence of the persistent current circulating inthe superconducting loop comprising the first JJ and the second JJ. 10.The circuit of claim 9, wherein the first sub-circuit transitions to theset state when a clock pulse is received at the set terminal.
 11. Thecircuit of claim 9, wherein the first sub-circuit transitions to thereset state when an input pulse is received at the input terminal. 12.The circuit of claim 9, wherein the first sub-circuit transitions to thereset state when a clock pulse is received at the clock terminal. 13.The circuit of claim 9, wherein the circuit outputs an output pulse atthe output terminal when a clock pulse is received at the clock terminaland the circuit is in the set state.
 14. A circuit, comprising: a firstsub-circuit comprising a first Josephson junction (JJ), a second JJ, anda third JJ coupled in parallel using superconducting inductors, whereinthe first JJ, the second JJ, and the third JJ are biased using one ormore JJ-based current sources, wherein the circuit has two stablestates, wherein a first stable state corresponds to an absence of apersistent current circulating in a superconducting loop comprising thefirst JJ and the second JJ, wherein a second stable state corresponds toa presence of the persistent current circulating in the superconductingloop comprising the first JJ and the second JJ; a second sub-circuit toswitch the first sub-circuit to the second stable state in response toreceiving a pulse, wherein the first sub-circuit transitions to thesecond stable state when a clock pulse is received at a set terminal ofthe circuit that is coupled to the second sub-circuit; and a thirdsub-circuit to switch the first sub-circuit to the first stable state inresponse to receiving one or more pulses.
 15. The circuit of claim 14,wherein the first sub-circuit transitions to the first stable state whenan input pulse is received at an input terminal of the circuit that iscoupled to the third sub-circuit.
 16. The circuit of claim 14, whereinthe first sub-circuit transitions to the first stable state when a clockpulse is received at a clock terminal of the circuit that is coupled tothe first JJ.
 17. The circuit of claim 16, wherein the circuit outputsan output pulse at an output terminal of the circuit when the clockpulse is received at the clock terminal and the circuit is in the secondstable state, and wherein the output terminal of the circuit is coupledto the third JJ via a termination resistance.
 18. A single flux quantum(SFQ) cell, comprising: a first sub-circuit to store a first logic stateor a second logic state, the first sub-circuit comprising a firstJosephson junction (JJ), a second JJ, and a third JJ coupled in parallelusing superconducting inductors; a second sub-circuit to switch thefirst sub-circuit to the second logic state responsive to receiving anexternal pulse at a first pin of the second sub-circuit; and a thirdsub-circuit to switch the first sub-circuit to the first logic stateresponsive to receiving one or more external pulses on a second pin ofthe third sub-circuit.